import 'package:codemode/pages/WidgetNotFound.dart';
import 'package:codemode/pages/home.dart';
import 'package:fluro/fluro.dart';
import 'package:flutter/cupertino.dart';

import 'AppRouter.dart';
import 'IRouterProvider.dart';

class Routes {
  static String HOME = "/home";

  //子router管理集合
  static List<IRouterProvider> _listRouter = [];

  static void configureRoutes(FluroRouter router) {
    /// 指定路由跳转错误返回页
    router.notFoundHandler = Handler(
        handlerFunc: (BuildContext context, Map<String, List<String>> params) {
      print("未找到目标页");
      return WidgetNotFound();
    });

    //主界面可以在此类中进行注册（可定义传参）
    router.define(HOME,
        handler: Handler(
            handlerFunc:
                (BuildContext context, Map<String, List<String>> params) =>
                    home()));

    // //一些共用的界面也可以在此处注册
    // router.define(webViewPage, handler: Handler(handlerFunc: (_, params){
    //   String title = params['title']?.first;
    //   String url = params['url']?.first;
    //   return WebViewPage(title: title, url: url);
    // }));

    //每次初始化前 先清除集合 以免重复添加
    _listRouter.clear();

    /// 各自路由由各自模块管理，统一在此添加初始化
    _listRouter.add(AppRouter());

    /// 初始化路由 循环遍历取出每个子router进行初始化操作
    _listRouter.forEach((routerProvider) {
      routerProvider.initRouter(router);
    });
  }
}
